package com.zpark.controller;

import com.zpark.pojo.Emp;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @PackageName: com.zpark.controller
 * @ClassName: ThymeleafController
 * @Description:
 * @author: RZS
 * @date: 2024/3/6  11:53
 */
@Controller
@RequestMapping("/thy")
public class ThymeleafController {

    // 访问thy01.html页面
    @RequestMapping("/page")
    public ModelAndView page(){
        // 创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        // 设置视图名字
        mv.setViewName("thy01");
        // 设置绑定数据
        mv.addObject("dc", 10086);
        // 返回ModelAndView对象
        return mv;
    }

    @RequestMapping("/t1")
    public ModelAndView t1(){
        // 创建模型视图对象
        ModelAndView view = new ModelAndView();

        // 设置绑定的数据
        // 返回String类型数据或者基本数据类型
        String msg = "我在学习Thymeleaf语法";
        Integer number = 10086;
        String tag = "<h1>String内容</h1>";

        view.addObject("str", msg);
        view.addObject("base", number);
        view.addObject("tag", tag);

        // 返回对象类型数据，如：返回emp对象
        Emp e1 = new Emp(8080, "大锤", 26);
        view.addObject("emp", e1);

        // 返回集合类型数据，如：List<Emp>
        List<Emp> lists = new ArrayList<>();
        lists.add(e1);
        lists.add(new Emp(8087, "小锤", 25));
        lists.add(new Emp(8088, "张三", 56));

        view.addObject("lists", lists);

        // 返回Map类型数据
        Map<String, Object> map = new HashMap<>();
        map.put("emp", e1);

        view.addObject("map", map);

        // 返回数组类型数据
        String[] arr = new String[]{"C", "C++", "Java", "Python"};

        view.addObject("array", arr);

        // 设置响应页面（视图解析的页面）
        view.setViewName("thy02");

        // 返回模型视图
        return view;
    }

    @RequestMapping("/t2")
    public ModelAndView t2(){
        // 创建视图解析器对象
        ModelAndView view = new ModelAndView();
        // 设置视图名字
        view.setViewName("thy03");
        // 返回视图解析器对象
        return view;
    }

    @RequestMapping("/t3")
    public ModelAndView t3(){
        // 创建视图解析器对象
        ModelAndView view = new ModelAndView();
        // 设置视图名字
        view.setViewName("thy04");
        // 返回视图解析器对象
        return view;
    }

    @RequestMapping("/t4")
    public ModelAndView t4(String username, String password){
        // 创建视图解析器对象
        ModelAndView view = new ModelAndView();
        // 设置视图名字
        view.setViewName("thy04");

        System.out.println("username: " + username + "------ password: " + password);
        // 返回视图解析器对象
        return view;
    }
}
